package com.ikun.common.search.customhandler;

import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Map;

/**
 * @ClassName BaseResultCustomHandler
 * @Description: 基础返回结果集自定义处理接口 T原数据需要被处理的类型 R1源数据第一次转换的类型 R2源数据第二次被转换后的类型
 * @CreateDate: 2024/7/17 10:03
 */
public interface BaseResultCustomHandler<T, R1, R2> {

    /**
     * @param cols
     * @return
     */
    Map<T, R1> handler(Collection<T> cols);

    default Map<T, R1> handler(List<Collection<T>> colList) {
        HashSet<T> hashSet = new HashSet<>();
        hashSet.addAll(colList.get(0));
        return this.handler(hashSet);
    }

    R2 reHandler(T row, Map<T, R1> resultMap);
}
